<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>

    // 数组转Set 
    var list = [1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4];

    // 1. 手动转
    // var s = new Set();
    // list.forEach(function(v){  // forEach 不接受函数执行的结果 => 但是可以设置返回值(没有用)
    //      s.add(v)
    // })
    // list.forEach(v=>s.add(v))
    // console.log(s);

    // 2. 自动转   new Set()可以接收一个数组,并对数组中的元素进行去重
    var s = new Set(list);
    console.log(s);

    // Set结构转数组
    // 1. 手动转
    // var arr = [];
    // s.forEach(v=>arr.push(v));
    // console.log(arr);

    // 2. 自动转
    // Array.from()
    // ...     (可以展开 数组 伪数组 对象 字符串 Map Set等可遍历结构)

    // var arr = Array.from(s);
    // var arr = [...s];
    // console.log(arr);



    // 数组去重
    var list = [1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4];
    var arr = [...new Set(list)];
    console.log(arr);



</script>

</html>